package com.ziyueyuwen.xiniao.service;

import com.alibaba.fastjson.JSONObject;
import com.ziyueyuwen.xiniao.bean.product.ZyCouponDO;
import com.ziyueyuwen.xiniao.enums.CouponStatusEnum;

import java.util.List;

/**
 * @author jun 2019/2/23
 */
public interface CouponService {
    /**
     * 添加优惠码
     *
     * @param zyCouponDO ZyCouponDO
     * @return Boolean
     */
    Boolean add(ZyCouponDO zyCouponDO);

    /**
     * 删除优惠码
     *
     * @param id Integer
     * @return Boolean
     */
    Boolean delete(Integer id);

    /**
     * 管理员查询优惠码
     *
     * @param pageNum      Integer
     * @param pageSize     Integer
     * @param couponStatus CouponStatusEnum
     * @param queryData    String
     * @return JSONObject
     */
    JSONObject listByManager(Integer pageNum, Integer pageSize, CouponStatusEnum couponStatus, String queryData);

    /**
     * 用户获取所有未使用的优惠券
     *
     * @param userAccount String
     * @return List<ZyCouponDO>
     */
    List<ZyCouponDO> listByUser(String userAccount);

    /**
     * 用户获取可用且面值最大的验证码
     *
     * @param userAccount String
     * @return ZyCouponDO
     */
    ZyCouponDO getByUser(String userAccount);

    /**
     * 使用优惠券
     *
     * @param id Integer
     * @return Boolean
     */
    Boolean usedCoupon(Integer id);
}
